Somatosensory type notification alerts

ABSTRACT

A computing device is described that can receive contextual information related to a user associated with the computing device. The contextual information may relate to at least one of a physiological condition of the user at a current time or a type of activity associated with the user at the current time. The computing device can select, based at least in part on the contextual information, a type of alert to output as an indication of notification data. The type of alert may include at least one of an electric stimulus type alert, a shape-memory alloy type alert, and a vibration type alert. Responsive to selecting the type of alert, the computing device can output an alert based on the notification data, the alert being of the selected type of alert.

RELATED APPLICATIONS

This application is a Continuation of application Ser. No. 15/670,357,filed Aug. 7, 2017, which is a Continuation of application Ser. No.15/238,964, filed Aug. 17, 2016, now U.S. Pat. No. 9,747,775, which is aContinuation of application Ser. No. 14/806,961, filed Jul. 23, 2015,now U.S. Pat. No. 9,443,413, which is a Continuation of application Ser.No. 14/564,898, filed Dec. 9, 2014, now U.S. Pat. No. 9,147,332, whichis a Continuation of application Ser. No. 14/176,836, filed Feb. 10,2014, now U.S. Pat. No. 8,941,500, each of which claims the benefit ofU.S. Provisional Application No. 61/930,776, filed Jan. 23, 2014, theentire contents of each of which are hereby incorporated by reference.

BACKGROUND

Many modern computing devices (e.g., mobile telephones, wearablecomputing devices, etc.) are capable of receiving notificationsassociated with a user of the computing device. For example, a computingdevice may receive notification data indicating that the computingdevice received a new instant message associated with an instantmessaging account of the user. To alert the user to the receipt of thenotification data and/or the new instant message indicated by thenotification data, the computing device may output an alert (e.g., avisual, audible, and/or haptic type alert) based on the notificationdata to indicate to the user that the new instant message was received.Sometimes, the output of a notification based alert may fail inobtaining the attention of the user at a particular time. At othertimes, although the output of an alert may succeed in obtaining theattention of the user, the output of the alert may be perceived as adistraction, disruption, and/or annoyance, at a particular time.

SUMMARY

In one example, the disclosure is directed to a method that includesreceiving, by a computing device, contextual information related to auser associated with the computing device, wherein the contextualinformation relates to at least one of a physiological condition of theuser at a current time or a type of activity associated with the user atthe current time. The method further includes selecting, by thecomputing device, based at least in part on the contextual information,a type of alert to output as an indication of notification data, whereinthe type of alert comprises at least one of an electric stimulus typealert, a shape-memory alloy type alert, and a vibration type alert, andresponsive to selecting the type of alert, outputting, by the computingdevice, an alert based on the notification data, the alert being of theselected type of alert.

In another example, the disclosure is directed to a computing devicethat includes at least one processor and at least one module operable bythe at least one processor to receive contextual information related toa user associated with the computing device, wherein the contextualinformation relates to at least one of a physiological condition of theuser at a current time or a type of activity associated with the user atthe current time. The at least one module is further operable by the atleast one processor to select, based at least in part on the contextualinformation, a type of alert to output as an indication of notificationdata, wherein the type of alert comprises at least one of an electricstimulus type alert, a shape-memory alloy type alert, and a vibrationtype alert, and responsive to selecting the type of alert, output analert based on the notification data, the alert being of the selectedtype of alert.

In another example, the disclosure is directed to a computer readablestorage medium including instructions that, when executed, configure oneor more processors of a computing device to receive contextualinformation related to a user associated with the computing device,wherein the contextual information relates to at least one of aphysiological condition of the user at a current time or a type ofactivity associated with the user at the current time. The instructions,when executed, further configure the one or more processors of thecomputing device to select, based at least in part on the contextualinformation, a type of alert to output as an indication of notificationdata, wherein the type of alert comprises at least one of an electricstimulus type alert, a shape-memory alloy type alert, and a vibrationtype alert, and responsive to selecting the type of alert, output analert based on the notification data, the alert being of the selectedtype of alert.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of the disclosure will be apparent from the description anddrawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example computing systemthat includes an information server system that outputs notificationdata to an example computing device, in accordance with one or moreaspects of the present disclosure.

FIG. 2 is a block diagram illustrating an example computing deviceconfigured to output alerts based on notification data, in accordancewith one or more aspects of the present disclosure.

FIG. 3 is a conceptual block diagram illustrating an example computingdevice that outputs graphical content for display at a remote device andcan output somatosensory type alerts at a remote attachment mechanism,in accordance with one or more techniques of the present disclosure.

FIGS. 4 and 5 are flowcharts illustrating example operations of anexample computing device configured to output alerts based at least inpart on contextual information, in accordance with one or more aspectsof the present disclosure.

FIGS. 6 and 7 are flowcharts illustrating example operations of anexample computing device configured to select a type of alert based atleast in part on contextual information, in accordance with one or moreaspects of the present disclosure.

DETAILED DESCRIPTION

In general, techniques of this disclosure may enable a computing device(e.g., a wearable computing device, a mobile computing device, etc.) toautomatically determine a type of somatosensory alert to output as anindication of notification data. The computing device may determine atype of somatosensory alert (e.g., an electric stimulus type alert, ashape-memory alloy type alert, a vibration type alert, etc.) to outputat a current time based on a determination made by the computing deviceas to a physiological state of the user and/or activity being performedby the user at the current time.

For example, a computing device may receive notification data from anapplication or platform executing at the computing device and/or from aserver as part of a notification service executing at a network (e.g.,in a cloud). The computing device that receives notification data mayalso receive contextual information related to a user of the computingdevice. The computing device may select, based at least in part on thecontextual information, a type of alert or cue to output as anindication of notification data. For instance, based on the contextualinformation, the computing device may determine a physiologicalcondition of the user (e.g., whether the user is stressed, relaxed,etc.) and/or a type of activity associated with the user (e.g., walking,jogging, reading, driving, etc.) at the current time. The computingdevice may select a type of somatosensory alert to output as anindication of notification data (e.g., to indication the receipt ofnotification data), at the current time, according to the determinedphysiological condition and/or the type of activity that the computingdevice infers from the contextual information.

In some instances, the computing device may select a more intense typeof somatosensory alert (e.g., an electric stimulus type alert) when thecomputing device determines that the contextual information indicatesthat the user is stressed and may select a less intense (e.g., moresubtle) type of somatosensory alert (e.g., a shape-memory alloy typealert) when the computing device determines that the contextualinformation indicates that the user is relaxed. In some examples, whenthe computing device determines that the contextual informationindicates that the user may be performing a physical and/or focusintensive type of activity, the computing device may select a moreintense type of somatosensory alert (e.g., an intense vibration typealert), and, when the computing device determines that the user may beperforming a non-physical and/or non-focus intensive type of activity,the computing device may select a less intense (e.g., more subtle) typeof somatosensory alert (e.g., a mild vibration type alert or ashape-memory alloy type alert).

In this manner, the computing device may adapt or change a way in whichthe computing device outputs an alert of notification data such that theoutput of the alerts conforms to the physiological condition and/oractivity associated with the user at a current time. By selecting thetype of alert based at least in part on contextual information relatedto the user in this way, the computing device according to thetechniques of this disclosure may improve a likelihood that the user ofthe computing device perceives (e.g., feels) a notification-based alertbeing outputted by the computing device, while reducing the extent towhich the alert distracts, disturbs, or otherwise annoys the user.

Throughout the disclosure, examples are described in which a computingdevice and/or a computing system may analyze information (e.g.,locations, speeds, physiological parameters, active application, etc.)associated with a computing device only if the computing device receivespermission from the user to analyze the information. For example, insituations discussed below in which the computing device may collect ormay make use of information associated with the user, the user may beprovided with an opportunity to provide input to control whetherprograms or features of the computing device can collect and make use ofuser information (e.g., information about a user's current location,current speed, physiological parameters, active application, etc.), orto dictate whether and/or how to the computing device may receivecontent that may be relevant to the user. In addition, certain data maybe treated in one or more ways before it is stored or used by thecomputing device and/or computing system, so thatpersonally-identifiable information is removed. For example, a user'sidentity may be treated so that no personally identifiable informationcan be determined about the user, or a user's geographic location may begeneralized where location information is obtained (such as to a city,ZIP code, or state level), so that a particular location of a usercannot be determined. Thus, the user may have control over howinformation about the user is collected and used by the computingdevice.

FIG. 1 is a conceptual diagram illustrating an example computing system1 that includes an information server system 60 that outputsnotification data to an example computing device 10, in accordance withone or more aspects of the present disclosure. Computing system 1 ofFIG. 1 is an example computing system that includes computing device 10,information server system 60, and network 30.

Network 30 may include any public or private communication network, forinstance, a cellular, Wi-Fi®, and/or other type of network fortransmitting data between computing devices. Computing device 10 andinformation server system 60 may send and receive data across network 30using any suitable communication techniques. For example, computingdevice 10 may be operatively coupled to network 30 using network link32A and information server system 60 may be operatively coupled tonetwork 30 by network link 32N. Network 30 may include network hubs,network switches, network routers, etc., that are operativelyinter-coupled thereby providing for the exchange of information betweencomputing device 10 and information server system 60. In some examples,network links 32A and 32N (collectively, “network links 32”) may beEthernet, ATM, or other network connections. Such connections may bewireless and/or wired connections.

Information server system 60 may include any suitable remote computingsystem, such as one or more desktop computers, laptop computers,mainframes, servers, cloud computing systems, etc. capable of sendingand receiving information (e.g., notification data) across network link32N to network 30. In some examples, information server system 60 mayinclude a host server for a notification system service. One or morecomputing devices, such as computing device 10, may access anotification service hosted by information server system 60 fortransmitting and/or receiving notification data between platforms,applications, and services executing at the one or more computingdevices. In some examples, information server system 60 may include acloud computing system that provides notification services throughnetwork 30 to the one or more computing devices that access thenotification services via access to the cloud provided by informationserver system 60.

In the example of FIG. 1, information server system 60 includesnotification host module 62. Module 62 may perform operations describedherein using software, hardware, firmware, or a mixture of hardware,software, and/or firmware residing in and/or executing at informationserver system 60. In some examples, information server system 60 mayexecute module 62 with multiple processors or multiple devices.Information server system 60 may execute module 62 as a virtual machineexecuting on underlying hardware. Module 62 may execute as one or moreservices of an operating system or computing platform. Module 62 mayexecute as one or more executable programs at an application layer of acomputing platform.

Notification host module 62 may perform functions for routingnotification data between one or more computing devices, such ascomputing device 10, over network 30. Notification host module 62 mayperform functions for hosting a notification service and outputtingnotification data for transmission to one or more computing devices,including computing device 10. For example, notification host module 62may receive notification data that indicates a message was received byan instant messaging account associated with computing device 10 and mayoutput the notification data for transmission across network 30 tocomputing device 10.

As described below, computing device 10 may output somatosensory typealerts (e.g., an electric stimulus type alert, a shape-memory alloy typealert, and a vibration type alert, etc.) based on notification data.Computing device 10 may receive notification data from notification hostmodule 62 of information server system 60 via network links 32A. Asomatosensory type alert may indicate that computing device 10 hasreceived notification data.

As used herein, a somatosensory type alert or a type of somatosensoryalert is defined as any type of cue, alert, or indication generated by acomputing device (e.g., computing device 10) that can be perceived bythe somatosensory system of a body of a person. The human somatosensorysystem includes the sensory receptors and nerves of a person's skin,bones, tissue, muscle, joints, internal organs, etc., that enable theperson to detect varying levels of touch, temperature, and/or pressure.A user of computing device 10 can perceive or feel a somatosensory typealert from a computing device by detecting touch, temperature, and/orpressure generated by computing device 10. In other words, unlike visualcues, audible alerts, and/or indications of smell, which a user mayperceive using, respectively, his or her sense of sight, hearing, and/orsmell, a user of computing device 10 may detect a somatosensory typealert by perceiving touch, temperature, and/or pressure using thesomatosensory system of his or her body. Various types of somatosensorytype alerts may exist, and include, but are not limited to, an electricstimulus type alert, a vibration type alert, a shape-memory alloy typealert.

In the example of FIG. 1, computing device 10 is a wearable computingdevice (e.g., a computerized watch, computerized eyewear, computerizedheadwear, computerized gloves, etc.). However, in other examples,computing device 10 may be a tablet computer, a mobile phone, a personaldigital assistant (PDA), a laptop computer, a gaming system, a mediaplayer, an e-book reader, a television platform, an automobilenavigation system, or any other type of mobile and/or non-mobilecomputing device that is configured to receive notification data frominformation server system 60 and output a somatosensory type alert(e.g., a vibration type alert, a shape-memory alloy type alert, anelectric stimulus type of alert, etc.) based on notification data toprovide an indication of the receipt of the notification data.

As shown in FIG. 1, in some examples, computing device 10 may includeattachment device 16 and electrical housing 18. Housing 18 of computingdevice 10 includes a physical portion of a wearable computing devicethat houses a combination of hardware, software, firmware, and otherelectrical components of computing device 10. For example, FIG. 1 showsthat within housing 18, computing device 10 may include a user interfacedevice (UID) 12, somatosensory output device (SOD) 14, user interface(UI) module 20, notification client module 22, and context module 24.Modules 20, 22, and 24 may perform operations described herein usingsoftware, hardware, firmware, or a mixture of hardware, software, and/orfirmware residing in and/or executing at computing device 10. Computingdevice 10 may execute modules 20, 22, and 24 with one or more processorslocated within housing 18. In some examples, computing device 10 mayexecute modules 20, 22, and 24 as one or more virtual machines executingon underlying hardware of computing device 10 located within housing 18.Modules 20, 22, and 24 may execute as one or more services or componentsof operating systems or computing platforms of computing device 10.Modules 20, 22, and 24 may execute as one or more executable programs atapplication layers of computing platforms of computing device 10. Inother examples, UID 12, SOD 14, and/or modules 20, 22, and 24 may bearranged remotely to housing 18 and be remotely accessible to computingdevice 10, for instance, via interaction by computing device 10 with oneor more network services operating at network 30 in a network cloud.

Attachment device 16 may include a physical portion of a wearablecomputing device that comes in contact with a body (e.g., tissue,muscle, skin, hair, clothing, etc.) of a user when the user is wearingthe computing device. For example, in cases where computing device 10 isa watch, attachment device 16 may be a watch band that fits around auser's wrist and comes in contact with the skin of the user, whencomputing device 10 is eyewear or headwear, attachment device 16 may bea portion of the frame of the eyewear or headwear that fits around auser's head, and when computing device 10 is a glove, attachment device16 may be the material of the glove that conforms to the fingers andhand of a user.

UID 12 of computing device 10 may include a respective input and/oroutput device for computing device 10. UID 12 may be implemented usingone or more various technologies. For instance, UID 12 may function asinput device using a presence-sensitive input screen, such as aresistive touchscreen, a surface acoustic wave touchscreen, a capacitivetouchscreen, a projective capacitance touchscreen, a pressure sensitivescreen, an acoustic pulse recognition touchscreen, or anotherpresence-sensitive display technology. UID 12 may function as output(e.g., display) device using any one or more display devices, such as aliquid crystal display (LCD), a dot matrix display, a light emittingdiode (LED) display, an organic light-emitting diode (OLED) display,e-ink, or similar monochrome or color displays capable of outputtingvisible information to a user of computing device 10.

In some examples, UID 12 may include a presence-sensitive display thatmay include a display device and receive tactile input from a user ofcomputing device 10. UID 12 may receive indications of tactile input bydetecting one or more gestures from a user (e.g., the user touching orpointing to one or more locations of UID 12 with a finger or a styluspen). UID 12 may present output to a user, for instance at apresence-sensitive display. UID 12 may present the output as a graphicaluser interface (e.g., a user interface for viewing an alert based onnotification data), which may be associated with functionality providedby computing device 10. For example, UID 12 may present various userinterfaces related to the functionality of computing platforms,operating systems, applications, and/or services executing at oraccessible by computing device 10 (e.g., notification services,electronic message applications, Internet browser applications, mobileor desktop operating systems, etc.). A user may interact with a userinterface presented at UID 12 to cause computing device 10 to performoperations relating to functions.

UI module 20 may receive and interpret inputs detected at UID 12 (e.g.,as a user provides one or more gestures at one or more locations of UID12 at which a user interface is displayed) and input detected at otherinput devices of computing device 10 (e.g., microphones, physicalbuttons, etc.). UI module 20 may relay information about the inputdetected at computing device 10 to one or more associated platforms,operating systems, applications, and/or services executing at computingdevice 10, to cause computing device 10 to perform functions.

UI module 20 also may receive information and instructions from one ormore associated platforms, operating systems, applications, and/orservices executing at computing device 10 (e.g., notification clientmodules 22, etc.) for generating a graphical user interface or forproviding a somatosensory type user interface. In addition, UI module 20may act as a respective intermediary between the one or more associatedplatforms, operating systems, applications, and/or services executing atcomputing device 10 and various output devices of computing device 10(e.g., UID 12, SOD 14, a speaker, a LED indicator, other output devices,etc.) to produce output (e.g., a graphic, a flash of light, a sound, asomatosensory response, a haptic response, etc.) with computing device10.

Notification client module 22 may perform functions associated withreceiving, managing, outputting, and otherwise handling at least aportion of the notification data generated and/or received by platforms,applications, and services executing at computing device 10.Notification client module 22 may receive notification data fromnotification host module 62 of information server system 60 and outputthe received notification data to a recipient platform, application,and/or service executing at computing device 10. Notification clientmodule 22 may receive notification data generated by a platform,application, and/or service executing at computing device 10, and outputthe received notification data to information server system 60 overlinks 32. Notification client module 22 also may cause UI module 20 tooutput alerts (e.g., visual alerts at UID 12 and/or somatosensory alertsusing SOD 14) to indicate the receipt of notification data by computingdevice 10. Said differently, notification client module 22 may cause UImodule 20 to output alerts as indications of notification data.

As used throughout the disclosure, the term “notification data” is usedto describe various types of information that may indicate theoccurrence of an event associated with various platforms, applications,and services executing within an execution environment at one or morecomputing devices, such as computing device 10. For example,notification data may include, but is not limited to, informationregarding an event such as: the receipt of a communication message(e.g., e-mail, instant message, SMS, etc.) by a messaging accountassociated with a user of computing device 10, the receipt ofinformation by a social networking account associated with a user ofcomputing device 10, a reminder of a calendar event (meetings,appointments, etc.) associated with a calendar account of a user ofcomputing device 10, information generated and/or received by athird-party application executing at computing device 10, thetransmittal and/or receipt of inter-component communications between twoor more components of platforms, applications, and/or services executingat computing device 10, etc.

Context module 24 may receive and aggregate contextual informationrelated to a user of computing device 10. Based on the contextualinformation, context module 24 may infer a physiological condition ofthe user at a particular (e.g., current) time and/or a type of activityassociated with the user at the particular (e.g., current) time. Contextmodule 24 may output information to UI module 20 that indicates whethercontext module 24 predicts, infers, or otherwise determines that a useris stressed, relaxed, or neither stressed nor relaxed at a current time,based on the contextual information received by context module. Contextmodule 24 may output information to UI module 20 that indicates whethercontext module 24 predicts, infers, or otherwise determines that a useris performing a physical activity, a non-physical activity, a focusintensive activity, and/or a non-focus intensive activity, at a currenttime.

As used throughout the disclosure, the term “contextual information” isused to describe information that can be used by a computing system, acomputing device, or a component or module thereof, such as contextmodule 24 of computing device 10, to determine a physiological conditionof a user (e.g., whether a user is stressed or not stressed) and/or atype of activity (e.g., physical, non-physical, stressful, notstressful, focus-intensive, non-focus-intensive) associated with a userof a computing device at a particular time. For example, contextualinformation may include data specifying a location and/or a degree ofmovement associated with one or more computing devices, such ascomputing device 10, and/or data specifying a measured value of aphysiological parameter associated with a user of one or more computingdevices, such as a user of computing device 10, and/or data specifying acurrently active application being executed by computing device 10.Contextual information may include data specifying a type ofapplication, exercise, game, etc. being performed by a user of acomputing device, such as computing device 10, at a particular time.Contextual information may specify a time of day (e.g., an hour of aday, lunch time, breakfast time, dinner time, bedtime, wakeup time,break time, work hours, non-work hours, etc.).

SOD 14 includes one or more components or output devices capable ofproviding various somatosensory type outputs. For example, rather thanprovide visual or audible types of output, SOD 14 may be configured tocause computing device 10 to provide a vibration type output, anelectric stimulus type output, a shape-memory alloy type output, and/oranother type of somatosensory type output. UI module 20 may control thetype of somatosensory output that SOD 14 outputs by issuing commands toSOD 14 as UI module 20 manages the presentation of a user interface(e.g., a somatosensory type user interface) associated with computingdevice 10.

SOD 14 may include an electrically and/or mechanically controlledvibration device capable of vibrating attachment device 16 and/orhousing 18 of computing device 10 with various degrees of intensity. UImodule 20 may cause SOD 14 to output vibrations with varying degrees ofintensity. The intensity of the vibrations may be affected by theamplitude, frequency, and/or pattern of the vibrations. For example, avibration characterized by a signal having a greater amplitude (and thesame frequency and pattern) may be perceived by a user as being moreintense. As another example, vibrations characterized by signals havingdifferent frequencies and/or with different patterns (with the sameamplitude) may be perceived by the user as having different intensities.UI module 20 may control at least one characteristic of the vibrationcaused by SOD 14 (e.g., including at least one of frequency, amplitude,pattern, duration, etc.) to control the vibration intensity.

For instance, UI module 20 may cause SOD 14 to output a high intensityvibration to cause housing 18 and/or attachment device 16 to shake witha greater force and/or higher frequency than when SOD 14 outputs a lessintense vibration. SOD 14 may receive a command from UI module 20 thatcauses SOD 14 to output either a high intensity vibration, a lowintensity vibration, or a moderate vibration with a level of intensitythat is less than a high intensity vibration and greater than a lowintensity vibration. For example, UI module 20 may cause SOD 14 tooutput a high intensity vibration as an indication of notification data(e.g., to indicate the receipt of notification data) when context module24 determines that the user is likely stressed and/or physically active(e.g., jogging).

In some examples, SOD 14 may include shape-memory alloy (“SMA”) thatforms at least a portion of attachment device 16 or housing 18. SMA alsomay be referred to as “smart metal,” “memory metal,” “memory alloy,”“muscle wire,” and “smart alloy.” SMA is an engineered material alloythat can change shape when exposed to changes in temperature (e.g., whenheated and/or when cooled). SMA may define a first shape when at lowtemperatures and a second shape when heated to a higher (e.g.,activation) temperature.

When SOD 14 includes a SMA, the SMA may define a first shape thatresults in housing 18 or attachment device 16 fitting relatively looselyon or around an appendage (e.g., head, wrist, hand, etc.) of a user ofcomputing device 10. An electrical conductor that carries an electricalcurrent may be disposed adjacent to or within the SMA of SOD 14. UImodule 20 may control SOD 14 to cause an electrical current to conductthrough the electrical conductor of the SMA. By controlling SOD 14, UImodule 20 may control the temperature of the SMA of SOD 14 (e.g., bycontrolling an electrical current through an electrical conductoradjacent to or passing through the SMA) to control the shape of the SMAof SOD 14 and cause computing device 10 to provide a shape-memory alloytype output or alert to a user of computing device 10. For example SOD14 may receive a command from UI module 20 for causing SOD 14 to outputa SMA type alert indicative of the receipt of notification data. Inresponse to the command to output the SMA type alert, SOD 14 may apply acurrent through a conductor of a portion of the SMA of SOD 14 toincrease the internal temperature of the SMA of SOD 14 beyond anactivation temperature associated with the SMA. In some examples, theactivation temperature may be greater than the user's body temperature,such that the SMA is not activated by being disposed adjacent to theuser's body. At or above the activation temperature, the shape of theSMA may change to a second shape (e.g., deform) and exert pressureagainst the user's wrist (e.g., tighten around the user's wrist) as theshape of housing 18 and/or attachment device 16 changes under influenceof the SMA. In response to a command from UI module 20, SOD 14 may causean electrical current to stop conducting through the electricalconductor of the SMA. When the electrical current stops passing throughthe electrical conductor, the temperature of the SMA may cool back belowthe activation temperature and the SMA may revert to the first shape,which may cause the shape of housing 18 or attachment device 16 torevert (e.g., such that housing 18 and/or attachment device 16 againfits relatively loosely again around the wrist of the user). A user ofcomputing device 10 may perceive (e.g., feel) a change to a shape orsize of housing 18 and/or attachment device 16 as a somatosensory typealert indicative of the receipt of notification data.

SOD 14 also may include an electrical circuit configured to generate anelectrical stimulus-type alert. UI module 20 may control SOD 14 toprovide the electrical stimulus-type of alert based on and/or responsiveto notification client module 22 receiving notification data. Forexample, a portion of housing 18 or attachment device 16 may include oneor more electrical contacts coupled to SOD 14. When a user of computingdevice 10 wears computing device 10, the one or more electrical contactsmay contact the user's body (e.g., skin on a wrist of the user). SOD 14may receive a command from UI module 20 to produce an electricalstimulus-type of alert to cue the user to the receipt of notificationdata. In response to the command from UI module 20, SOD 14 may apply anelectrical current at the one or more electrical contacts to cause theuser to perceive or feel an electrical stimulus proximate to the one ormore electrical contacts.

UI module 20 may cause UID 12 and SOD 14 to output, respectively, visualand somatosensory alerts based on notification data. For example, UImodule 20 may cause UID 12 to output a graphical user interface fordisplay from which a user can view output and provide input at UID 12.UI module 20 may cause UID 12 to output a graphical indication as avisual type alert within the user interface as an indication ofnotification data (e.g., to indicate the receipt of notification data).

UI module 20 also may cause SOD 14 to output a somatosensory userinterface. In other words, a somatosensory user interface may be definedas a user interface at which a user can feel, rather than hear or view,output from a computing device, such as computing device 10, as thecomputing device conveys information to the user. UI module 20 may causeSOD 14 to output a somatosensory alert to output as an indication ofnotification data (e.g., to indicate the receipt of notification data)as part of the somatosensory user interface controlled by UI module 20.As a user of computing device 10 feels somatosensory output from SOD 14,the user may interact with computing device 10 by providing input atcomputing device 10 (e.g., at UID 12, a microphone, or other inputdevice of computing device 10).

For instance, UI module 20 may receive information from notificationclient module 22 to cause UI module 20 to output a somatosensory ofalert, using SOD 14, based on notification data received by computingdevice 10. UI module 20 may query context module 24 for informationrelated to an inferred physiological condition and/or activityassociated with the user at a current time. UI module 20 may select atype of somatosensory alert to output using SOD 14 depending on theinferred physiological condition and/or a type of activity associatedwith the user. UI module 20 may issue a command or instruction to SOD 14that causes SOD 14 to produce a output of the somatosensory type thatcorresponds to the physiological condition and/or activity associatedwith the user at the current time

In some examples, contextual information may include sensor informationobtained by one or more sensors (e.g., gyroscopes, accelerometers,proximity sensors, temperature sensors, galvanic skin response sensors,hear rate sensors, inferred pulse sensors, etc.) of computing device 10or communicatively coupled to computing device 10, radio transmissioninformation obtained from one or more communication units and/or radios(e.g., global positioning system (GPS), cellular, Wi-Fi, etc.) ofcomputing device 10 or communicatively coupled to computing device 10,information obtained by one or more input devices (e.g., cameras,microphones, keyboards, touchpads, mice, UID 12, etc.) of computingdevice 10 or communicatively coupled to computing device 10,network/device identifier information (e.g., a network name, a deviceinternet protocol address, etc.), information obtained from one or moreprocessors of computing device 10 (e.g., a currently active application,etc.). In some examples, contextual information related to a user mayinclude communications information, such as e-mail messages, text-based(e.g., SMS) messages, telephone phone messages, calendar entriesassociated with the user, social network profile and communicationinformation associated with the user, etc. In some examples, contextualinformation related to a user may include traffic conditions at or neara location of a computing device associated with the user, weatherconditions at or near a location of a computing device associated withthe user, ambient audio data collected at or near a location of acomputing device associated with the user, video or still imagery datacollected at or near a location of a computing device associated withthe user, and any other type of information related to a user of acomputing device, such as computing device 10.

In some examples, context module 24 may obtain contextual informationrelated to a user of computing device 10 in substantially real-time. Insome examples, context module 24 may obtain contextual informationrelated to the user of computing device 10 periodically (e.g.,repeatedly with a defined period) or aperiodically (e.g., responsive tocomputing device 10 receiving notification data from information serversystem 60). In some examples, context module 24 may receive contextualinformation related to a user of computing device 10 at various earliertimes and use the earlier information to learn and/or produce rules fordiscerning whether a user of computing device 10 is stressed, relaxed,and/or neither stressed nor relaxed, at a later time, and/or fordiscerning whether a user of computing device 10 is performing aphysical activity, whether the user of computing device 10 is notperforming a physical activity, whether the user is performing afocus-intensive activity, and/or whether the user is performing anon-focus intensive activity, at a later time.

In some examples, context module 24 may determine a physiologicalcondition of the user of computing device 10 at a current time based oncontextual information obtained by computing device 10 prior to or atthe current time. For instance, context module 24 may determine ameasured value associated with a physiological parameter of the userand, based on the physiological parameter value, may infer aphysiological condition of the user. In some examples, the physiologicalparameter value may relate to a heart rate of a user, a galvanic skinresponse of a user's skin, a body temperature of a user, etc. Based onone or more of these physiological parameters, context module 24 mayinfer a physiological condition of the user, for instance, whether auser is stressed, relaxed, or at a baseline level indicating that theuser is neither particularly relaxed nor stressed at a particular time.

For example, context module 24 may utilize one or more thresholds fordetermining whether a user is stressed or relaxed at a current timebased on one or more physiological parameter values. Context module 24may, for example, compare a heart rate and/or temperature and/orgalvanic skin response level of a user to a heart rate threshold and/ortemperature threshold and/or galvanic skin response level threshold,respectively, and, if the heart rate and/or temperature and/or galvanicskin response level exceeds the corresponding threshold, context module24 may determine that the user is stressed. Conversely, responsive todetermining that the heart rate and/or temperature and/or galvanic skinresponse level of the user does not exceed the corresponding threshold,context module 24 may determine that the user is not stressed.

In some examples, context module 24 may utilize two or more thresholdsfor determining whether a user is stressed, relaxed, or neither stressednor relaxed at a current time based on one or more physiologicalparameters. For example, a first threshold may correspond to a maximumphysiological parameter value (e.g., heart rate and/or temperatureand/or galvanic skin response level) of a user in a relaxed state and asecond, different threshold may correspond to a minimum physiologicalparameter value of a user in a stressed state. The second threshold maybe greater than the first threshold. Context module 24 may determinethat a user is stressed when the user has a physiological parametervalue that is above the second threshold, that the user is stressed whenthe user has a physiological parameter value that is below the firstthreshold, or that the user is neither stressed nor relaxed when theuser has a physiological parameter value that falls between the firstand second threshold values for that physiological parameter (e.g., hasa nominal physiological parameter).

In some examples, context module 24 may output data indicative ofwhether a user of computing device 10 is likely currently stressed,relaxed, or neither stressed nor relaxed to UI module 20 for use by UImodule 20 in selecting a type of somatosensory alert to output as anindication of notification data (e.g., to indicate the receipt ofnotification data).

In some examples, context module 24 may additionally or alternativelyinfer a type of activity (e.g., physical, non-physical, focus-intensive,non-focus intensive, etc.) associated with the user at a particular timebased on contextual information obtained by computing device 10. Forinstance, context module 24 may determine a rate of movement ofcomputing device 10 (e.g., acceleration, velocity, speed, direction,etc.) and/or a location of computing device 10 (e.g., a coordinatelocation, a relative location, a location on a map, etc.) and infer,based on the location and rate of movement of computing device 10,whether the user of computing device 10 is performing a physical ornon-physical activity at a particular time.

For example, context module 24 of computing device 10 may obtaincontextual information that computing device 10 receives using fromvarious communication units, input devices, sensors, and the like ofcomputing device 10 and may determine a location associated withcomputing device 10. Context module 24 may receive GPS, cellular, and/orWi-Fi data received over link 32A by computing device 10 and determinecoordinate locations of computing device 10 based on the data. In someexamples, context module 24 may determine a relative location (e.g., anaddress, a place, a country, a city, a type of building, a business,etc.) of computing device 10 and/or determine a location of computingdevice 10 based on signal triangulation (e.g., a technique fordetermining a single location based on relative position data receivedfrom two or more signals). In other examples, context module 24 maydetermine a location of computing device 10 based on a networkidentifier associated with computing device 10.

Context module 24 may determine a degree of movement associated withcomputing device 10, at a location, based on contextual information. Forexample, context module 24 may determine a velocity, acceleration,speed, direction, and/or orientation of computing device 10 based onsensor data obtained by computing device 10 and/or based on locationdata associated with computing device 10. In some examples, contextmodule 24 may track the location of computing device 10 over time anddetermine velocity, direction, speed, and/or acceleration of computingdevice 10 based on changes in the locations of computing device 10.

Based on the location and/or movement associated with computing device10, context module 24 may infer whether the user of computing device 10is performing a physical or non-physical activity. For example, if thelocation of computing device 10 corresponds to a location on a highwayand the rate of movement corresponds to a rate of travel for a movingvehicle, context module 24 may determine that the user is likely drivingor riding in a vehicle and not performing a physical activity. However,if the rate of movement corresponds to a rate of travel for a person whois walking, jogging, or riding a bicycle, context module 24 maydetermine that the user is performing a physical activity at theparticular time.

In some examples, context module 24 may determine that a user ofcomputing device 10 is performing a physical activity if context module24 infers from accelerometer data and/or gyroscope data that the rate ofmovement and orientation of computing device 10 over time corresponds toa rate of movement and/or orientation of a computing device when a useris walking, jogging, swimming, or bicycling. In some examples, contextmodule 24 may further determine whether a user is performing a physicalactivity if a heart rate inferred from the contextual information ishigher than a baseline heart rate and or if the heart rate correspondsto a heart rate of a user that is exercising.

In some examples, context module 24 may determine that a user ofcomputing device 10 is performing a non-physical activity if contextmodule 24 infers from accelerometer data and/or gyroscope data that therate of movement and orientation of computing device 10 over timecorresponds to a rate of movement and/or orientation of a computingdevice when a user is sitting, lying down, etc. In some examples,context module 24 may additionally or alternatively determine whether auser is performing a non-physical activity if a heart rate inferred fromthe contextual information is lower than a baseline heart rate (e.g., aheart rate at rest) and or if the heart rate corresponds to a heart rateof a user that is at rest.

In any event, in some examples, based on contextual information, contextmodule 24 may determine a likelihood (e.g., a probability) of whether auser associated with computing device 10 is performing a physicalactivity or a non-physical activity, at a particular time. Contextmodule 24 may use machine learning and/or other prediction algorithmsand techniques to determine a probability, based on the contextualinformation, that a user of computing device 10 is performing a physicalactivity or not, at a particular (e.g., current) time. In other words,context module 24 may provide contextual information as one or moresignal inputs to a machine learning algorithm and receive as output, aprobability indicating whether a user of computing device 10 isperforming a physical activity or a non-physical activity, a particulartime. Context module 24 may output data indicative of whether a user ofcomputing device 10 is likely performing a physical activity or anon-physical activity to UI module 20 for use by UI module 20 inselecting a type of somatosensory type alert which to output as anindication of notification data (e.g., to indicate the receipt ofnotification data).

In some examples, based on contextual information, context module 24 maydetermine a likelihood of whether a user associated with computingdevice 10 is performing a stressful activity or a non-stressful activityat a current time. For example, context module 24 may infer that if auser is performing a physical activity (e.g., exercising) that the useris likely stressed.

Context module 24 may determine, based on contextual information, alikelihood of whether a user associated with computing device 10 isstressed or not when performing a non-physical activity by, for example,determining, based on the contextual information, a type of applicationexecuting at computing device 10 at the current time. Context module 24may infer that if the user is interacting with a particular application(e.g., a game application) executing at computing device 10, that theuser is stressed. Said differently, context module 24 may infer that theuser is performing a focus-intensive, non-physical activity, andtherefore stressed, based on a determination that the user isinteracting with a particular application. Context module 24 may inferthat if the user is interacting with a different application (e.g., areading application) executing at computing device 10, that the user isrelaxed. Said differently, context module 24 may infer that the user isperforming a non-focus-intensive, non-physical activity, and thereforerelaxed, based on a determination that the user is interacting withdifferent application.

In some examples, context module 24 may evaluate additional contextualinformation to determine a whether the user is stressed when contextmodule 24 determines that the user is performing a non-physical activityat the current time. For example, context module 24 may determine thatthe user is likely to be stressed if the context module 24 determinesthat the user is currently engaging in one of a first predetermined setof activities and/or may determine that the user is likely to be relaxedif the context module 24 determines that the user is currently engagingin one of a second predetermined set of activities. For example, contextmodule 24 may determine that the user is likely stressed, and therefore,not relaxed, when context module 24 determines, based on contextualinformation, that the user is driving an automobile. Context module 24may determine that the user is likely relaxed when context moduledetermines, based on contextual information, that the user may beperforming the non-physical activity of taking public transportation orreading a book.

Computing device 10 and information server system 60 may only collect ormake use of information associated with a user of computing device 10(e.g., notification data, contextual information, etc.) after providingthe user with an opportunity to provide input at computing device 10 tocontrol whether programs or features of information server system 60 andcomputing device 10 can collect and make use of user information (e.g.,information about a user's current location, current speed, etc.), or todictate whether and/or how information server system 60 and computingdevice 10 may receive content that may be relevant to the user. Inaddition, certain data may be treated in one or more ways before it isstored or used by information server system 60 and computing device 10,so that personally-identifiable information is removed.

In operation, information server system 60 may receive notification dataassociated with a user of computing device 10, e.g., from a contentserver associated with one or more accounts associated with the user ofcomputing device 10. Notification host module 62 may output thenotification data over network link 32N to network 30. Notificationclient module 22 of computing device 10 may receive the notificationdata from network 30 via network link 32A.

Notification client module 22 may output a command or instruction to UImodule 20 to cause UI module 20 to output an alert indicative of thereceipt of the notification data. UI module 20 may query context module24 for information that UI module 20 can use to determine which type ofsomatosensory type of alert to output using SOD 14.

Context module 24 of computing device 10 may receive contextualinformation related to a user associated with computing device 10. Asdescribed above, the contextual information may relate to at least oneof a physiological condition of the user at a current time or a type ofactivity associated with the user at the current time. In some examples,context module 24 may determine whether a user is stressed, relaxed, orneither stressed nor relaxed, at the current time, based on thecontextual information. In some examples, context module 24 maydetermine whether a user is performing a physical activity, anon-physical activity, a focus intensive non-physical activity, and/or anon-focus intensive non-physical activity, at the current time, based onthe contextual information. Context module 24 may send UI module 20 dataindicative of the determination made as to whether the user isperforming a physical activity, a non-physical activity, afocus-intensive activity, a non-focus intensive activity, and/or aphysiological condition associated with the user (e.g., stressed,relaxed, or neither stressed nor relaxed) at the current time.

UI module 20 may select a type of somatosensory alert with which toindicate receipt of notification data based on the data from contextmodule 24. The type of alert that UI module 20 selects may include atleast one of an electric stimulus type alert, a shape-memory alloy typealert, and a vibration type alert. For example, UI module 20 may receivethe data from context module 24 indicating that the user of computingdevice 10 is stressed and/or physically active at the current time. UImodule 20 may select a more intense somatosensory type alert (e.g., anelectric stimulus), to alert the user of computing device 10 as to thereceipt of the notification data rather than a less intensesomatosensory type alert (e.g., a mild vibration) when UI module 20receives data from context module 24 indicating that the user is likelystressed or physically active. UI module 20 may output a command orinstruction to SOD 14 to cause SOD 14 to output an electric stimulustype somatosensory alert.

As another example, UI module 20 may receive the data from contextmodule 24 indicating that the user of computing device 10 is relaxedand/or physically inactive at the current time. UI module 20 may selecta less intense (e.g., more subtle) somatosensory type alert (e.g., anSMA type alert), which may be effective in alerting the user ofcomputing device 10 as to the receipt of the notification data, whilebeing less intrusive than a more intense somatosensory type alert (e.g.,an intense vibration), since the user is likely relaxed and/orphysically inactive. UI module 20 may output a command or instruction toSOD 14 to cause SOD 14 to output an electric stimulus type somatosensoryalert.

Responsive to the command or instruction from UI module 20, SOD 14 mayoutput, at the current time, an alert based on the notification data,the alert being of the selected type of alert. For example, SOD 14 mayoutput an electric stimulus type alert to convey information to the userof computing device 10 that indicates notification data was received bycomputing device 10 at the current time.

In this manner, computing device 10 may select a way in which thecomputing device 10 outputs somatosensory alerts based at least in parton the physiological condition and/or activity associated with the userat a current time. By selecting a type of somatosensory alert based oncontextual information related to a user in this way, computing device10 may increase a likelihood that the user of the computing deviceperceives (e.g., feels) an alert being outputted by the computingdevice, while reducing distraction, disturbance, or annoyance to theuser with the output of the alert. For example, the user may be lesslikely to miss an alert based on notification data and computing device10 may in turn output fewer subsequent alerts to convey the sameinformation conveyed by a prior alert. As another example, thesomatosensory alert may be better tailored to the current circumstances,such that the somatosensory alert is less likely to be more intense thannecessary to alert the user to the receipt of notification data.Furthermore, computing device 10 may receive fewer inputs from a user toturn-off or disable alerts from the computing device 10 since the usermay find these types of alerts to be more appealing than other types ofalerts. By outputting fewer subsequent alerts and by receiving fewerinputs from the user, computing device 10 may perform fewer operationsand consume less electrical power.

Throughout the disclosure, examples are described where a computingdevice and/or a computing system may analyze information (e.g.,locations, speeds, etc.) associated with a computing device only if thecomputing device receives permission from the user to analyze theinformation. For example, in situations discussed below in which thecomputing device may collect or may make use of information associatedwith the user, the user may be provided with an opportunity to provideinput to control whether programs or features of the computing devicecan collect and make use of user information (e.g., information about auser's current location, current speed, etc.), or to dictate whetherand/or how to the computing device may receive content that may berelevant to the user. In addition, certain data may be treated in one ormore ways before it is stored or used by the computing device and/orcomputing system, so that personally-identifiable information isremoved. For example, a user's identity may be treated so that nopersonally identifiable information can be determined about the user, ora user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by the computing device.

FIG. 2 is a block diagram illustrating an example computing deviceconfigured to output alerts based on notification data, in accordancewith one or more aspects of the present disclosure. Computing device 10of FIG. 2 is described below within the context of FIG. 1. FIG. 2illustrates only one particular example of computing device 10, and manyother examples of computing device 10 may be used in other instances andmay include a subset of the components included in example computingdevice 10 or may include additional components not shown in FIG. 2.

As shown in the example of FIG. 2, computing device 10 includes UID 12,SOD 14, one or more processors 40, one or more input devices 42, one ormore communication units 44, one or more output devices 46, and one ormore storage devices 48. In the illustrated example, storage devices 48of computing device 10 also include UI module 20, notification clientmodule 22, context module 24, and one or more applications 52. Contextmodule 24 includes physiological monitor module 26 (“PM module 26”) andactivity monitor module 28 (“AM module 28”). Communication channels 50may interconnect each of the components 12, 14, 20, 22, 24, 26, 28, 40,42, 44, 46, and 52 for inter-component communications (physically,communicatively, and/or operatively). In some examples, communicationchannels 50 may include a system bus, a network connection, aninter-process communication data structure, or any other method forcommunicating data.

One or more input devices 42 of computing device 10 may receive input.Examples of input are tactile, audio, video, and sensor input. Inputdevices 42 of computing device 10, in some examples, include apresence-sensitive input device (e.g., a touch sensitive screen, apresence-sensitive display), mouse, keyboard, voice responsive system,video camera, microphone, or any other type of device for detectinginput from a human or machine. In some examples, input devices 42include physiological sensors for obtaining physiological parameterinformation associated with a user of computing device 10. For example,input devices 42 may include a heart monitor sensor, a temperaturesensor, a galvanic skin response sensor, an accelerometer, a gyroscope,a pressure sensor, a blood pressure sensor, and/or any other sensor formeasuring a physiological parameter that computing device 10 may use fordetermining a physiological condition of a user.

One or more output devices 46 of computing device 10 may generateoutput. Examples of output are tactile, audio, and video output. Outputdevices 46 of computing device 10, in some examples, include apresence-sensitive display, sound card, video graphics adapter card,speaker, cathode ray tube (CRT) monitor, liquid crystal display (LCD),or any other type of device for generating output to a human or machine.

One or more communication units 44 of computing device 10 maycommunicate with external devices via one or more networks bytransmitting and/or receiving network signals on the one or morenetworks. For example, computing device 10 may use communication unit 44to transmit and/or receive radio signals on a radio network such as acellular radio network. Likewise, communication units 44 may transmitand/or receive satellite signals on a satellite network such as a GPSnetwork. Examples of communication unit 44 include a network interfacecard (e.g. such as an Ethernet card), an optical transceiver, a radiofrequency transceiver, a GPS receiver, or any other type of device thatcan send and/or receive information. Other examples of communicationunits 44 may include Bluetooth®, GPS, 3G, 4G, and Wi-Fi® radios found inmobile devices as well as Universal Serial Bus (USB) controllers.

In some examples, UID 12 of computing device 10 may includefunctionality of input devices 42 and/or output devices 46. In theexample of FIG. 2, UID 12 may be or may include a presence-sensitiveinput device. In some examples, a presence-sensitive input device maydetect an object at and/or near the presence-sensitive input device. Asone example range, a presence-sensitive input device may detect anobject, such as a finger or stylus that is within two inches or less ofthe presence-sensitive input device. In another example range, apresence-sensitive input device may detect an object six inches or lessfrom the presence-sensitive input device, and other ranges are alsopossible. The presence-sensitive input device may determine a location(e.g., an (x,y) coordinate) of the presence-sensitive input device atwhich the object was detected. The presence-sensitive input device maydetermine the location selected by the input device using capacitive,inductive, and/or optical recognition techniques. In some examples,presence-sensitive input device provides output to a user using tactile,audio, or video stimuli as described with respect to output device 46,and may be referred to as a presence-sensitive display.

While illustrated as an internal component of computing device 10, UID12 also represents an external component that shares a data path withcomputing device 10 for transmitting and/or receiving input and output.For instance, in one example, UID 12 represents a built-in component ofcomputing device 10 located within and physically connected to theexternal packaging of computing device 10 (e.g., a screen on a mobilephone or wearable computing device). In another example, UID 12represents an external component of computing device 10 located outsideand physically separated from the packaging of computing device 10(e.g., a monitor, a projector, etc. that shares a wired and/or wirelessdata path with computing device 10).

In some examples, SOD 14 of computing device 10 may includefunctionality of output devices 46. In the example of FIG. 2, SOD 14 mayoutput a somatosensory alert, cue, or indication. For example, SOD 14may output an electric stimulus type alert, a vibration type alert,and/or a SMA type alert in response to a command received from UI module20.

One or more storage devices 48 within computing device 10 may storeinformation for processing during operation of computing device 10. Insome examples, storage device 48 is a temporary memory, meaning that aprimary purpose of storage device 48 is not long-term storage. Storagedevices 48 on computing device 10 may configured for short-term storageof information as volatile memory and therefore not retain storedcontents if powered off. Examples of volatile memories include randomaccess memories (RAM), dynamic random access memories (DRAM), staticrandom access memories (SRAM), and other forms of volatile memoriesknown in the art.

Storage devices 48, in some examples, also include one or morecomputer-readable storage media. Storage devices 48 may be configured tostore larger amounts of information than a temporary memory. Storagedevices 48 may further be configured for long-term storage ofinformation as non-volatile memory space and retain information afterpower on/off cycles. Examples of non-volatile memories include magnetichard discs, optical discs, floppy discs, flash memories, or forms ofelectrically programmable memories (EPROM) or electrically erasable andprogrammable (EEPROM) memories. Storage devices 48 may store programinstructions and/or data associated with UI module 20, notificationclient module 22, context module 24, PM module 26, AM module 28, and oneor more applications 52.

One or more processors 40 may implement functionality and/or executeinstructions within computing device 10. For example, processors 40 oncomputing device 10 may receive and execute instructions stored bystorage devices 48 that execute the functionality of UI module 20,notification client module 22, context module 24, PM module 26, AMmodule 28, and/or one or more applications 52. These instructionsexecuted by processors 40 may cause computing device 10 to storeinformation within storage devices 48 during program execution.Processors 40 may execute instructions of modules 20-28 and 52 to causeSOD 14 to output one or more somatosensory type alerts based onnotification data received by computing device 10. That is, modules20-28 and 52 may be operable by processors 40 to perform variousactions, including outputting information associated with asomatosensory type user interface using SOD 14.

In accordance with aspects of this disclosure, context module 24 ofcomputing device 10 may receive contextual information related to a userassociated with computing device 10. PM module 26 and/or AM module 28may use the contextual information to determine a type of activity beingperformed by the user at the current time (e.g., the time at whichnotification client module 22 received the notification data) and/or aphysiological condition of the user of computing device 10 at thecurrent time.

PM module 26 may infer a physiological condition of a user of computingdevice 10 based on contextual information that context module 24receives at a current time. PM module 26 may include one or more machinelearning algorithms or systems based on rules for determining aphysiological condition (e.g., whether a person is stressed, relaxed,not stressed nor relaxed) of a user at a current time. The rules oralgorithms of PM module 26 may receive physiological parameterinformation from input devices 42 and based on the physiologicalparameter information, infer, determine or otherwise predict whether, ata current time, a user of computing device 10 is relaxed, stressed, orneither stressed nor relaxed.

For example, PM module 26 may receive physiological data (e.g., heartrate information, temperature information, blood pressure information,galvanic skin response level information, etc.) over communicationchannels 50 from one or more input devices 42 (e.g., a physiologicalsensor), and compare the physiological data to one or more thresholdsfor determining whether a user of computing device 10 is stressed,relaxed, or neither stressed nor relaxed at a current time. Contextmodule 24 may output data to UI module 20 indicative of a physiologicalcondition of a user of computing device 10.

AM module 28 may infer a type of activity associated with a user ofcomputing device 10 at a current time. AM module 28 may determinewhether a type of activity associated with a user of computing device 10is a physical or a non-physical type of activity. In some examples, ifAM module 28 determines that the activity associated with the user atthe current time is a non-physical activity, AM module 28 may determinewhether the non-physical activity is a stressful or a non-stressful typeof non-physical activity. Context module 24 may output data to UI module20 indicative of a physical activity associated with a user of computingdevice 10 at a current time.

For example, AM module 28 may include one or more machine learningalgorithms or systems based on rules for determining a type of activityassociated with a user at a current time. The rules or algorithms of AMmodule 28 may receive contextual information from input devices 42,communication units 44, applications 52, and/or other sources ofcontextual information related to a user of computing device 10. Basedon the contextual information, the rules or algorithms of AM module 28may infer, determine or otherwise predict whether, at a current time, auser of computing device 10 is performing a physical type of activity,performing a non-physical type of activity, performing an intense orstressful non-physical type of activity, and/or performing a not intenseor relaxing type of non-physical activity.

In some examples, AM module 28 of context module 24 may receiveinformation from one or more applications 52 indicating a type of anactive application executing at computing device 10 at the current time.AM module 28 may determine that when a first type of application isactive (e.g., a game application, a work-related application, aneducational or test taking application, etc.) that the type of activitybeing performed by the user and associated with the user at the currenttime is a non-physical, stressful type of activity. AM module 28 maydetermine that when a different type of application is active (e.g., areading application, an internet browsing application, a magazineapplication, a music application, a movie application, etc.) that thetype of activity being performed by the user and associated with theuser at the current time is a non-physical, not stressful (e.g.,relaxing) type of activity.

In some examples, AM module 28 of context module 24 may receiveinformation from communication units 44 and/or input devices 42 anddetermine a location, speed, velocity, acceleration, orientation, etc.of computing device 10 at the current time, and, based on the location,speed, velocity, acceleration, orientation etc., determine whether ornot the user of computing device 10 is performing a physical ornon-physical activity. For example, orientation data received from agyroscope of input devices 42 may indicate to AM module 28 that the useris holding computing device 10 upside down in a way that may indicate auser is lying down while viewing UID 12. AM module 28 may infer thatwhen the user is lying down in this way that the user of computingdevice 10 is performing a non-physical activity that is also notstressful. AM module 28 may receive information from communication units44 indicating that the user is traveling at a speed associated withbicycle travel and further receive accelerometer data from input devices42 indicating an amount of vibration being detected at the current time.Based on the speed and vibration determined by AM module 28, a machinelearning algorithm of AM module 28 may determine that the user is likelyperforming the physical activity of riding a bicycle at the currenttime.

After determining a physiological condition of the user at a currenttime and/or a type of activity associated with the user at the currenttime, context module 24 may output data over communication channels 50to UI module 20 that indicates a type of activity being performed by theuser at the current time and/or a physiological condition of the user atthe current time. Using the data that context module 24 generates basedon contextual information related to a user, UI module 20 may select atype of alert with which to indicate receipt of the notification data.The type of alert includes at least one of an electric stimulus typealert, a shape-memory alloy type alert, and a vibration type alert.

For example, UI module 20 may compare the data received from contextmodule 24 to one or more rules for selecting a somatosensory type ofalert based on a physiological condition of the user. In some examples,if the data from context module 24 indicates that the user may beexperiencing a stressed physiological condition at the current time, UImodule 20 may select an intense type of somatosensory alert (e.g., anelectric stimulus). In some examples, if the data indicates that theuser may be relaxed at the current time, UI module 20 may select asubtle (e.g., not intense) type of somatosensory alert (e.g., an SMAtype alert). In some examples, if the data from context module 24indicates that the user is likely experiencing neither a stressed nor arelaxed physiological condition at the current time, UI module 20 mayselect a default or baseline (e.g., not intense or not subtle) type ofsomatosensory alert (e.g., a medium intensity vibration).

UI module 20 may additionally or alternatively compare the data receivedfrom context module 24 to one or more rules for selecting asomatosensory type of alert based on a type of activity associated withthe user at the current time. In some examples, if the data from contextmodule 24 indicates that the user may be performing a physical activity,UI module 20 may infer that the user may be stressed and may select anintense type of somatosensory alert (e.g., an electric stimulus typealert). In some examples, if the data indicates that the user may beperforming a non-stressful, non-physical (e.g., relaxing) type ofactivity at the current time, UI module 20 may select a subtle (e.g.,not intense) type of somatosensory alert (e.g., an SMA type alert). Insome examples, if the data from context module 24 indicates that theuser is likely performing a non-physical, but potentially stressfulactivity at the current time (e.g., playing a gaming application), UImodule 20 may select a more intense type of somatosensory alert (e.g., ahigh intensity vibration) than the type of alert selected when the useris likely performing a non-physical, non-stressful activity.

UI module 20 may output a command over communication channels 50 tocause SOD 14 to output the selected type of alert. SOD 14 may receivethe command and in response, output an alert based on the notificationdata, the alert being of the selected type of alert.

In this manner, computing device 10 may select a way in which thecomputing device 10 outputs somatosensory alerts based at least in parton the physiological condition and/or activity associated with the userat a current time. By selecting a type of somatosensory alert based oncontextual information related to a user in this way, computing device10 may increase a likelihood that the user of the computing deviceperceives (e.g., feels) an alert being outputted by the computingdevice, while reducing distraction, disturbance, or annoyance to theuser with the output of the alert. For example, the user may be lesslikely to miss an alert based on notification data and computing device10 may in turn output fewer subsequent alerts to convey the sameinformation conveyed by a prior alert. As another example, thesomatosensory alert may be better tailored to the current circumstances,such that the somatosensory alert is less likely to be more intense thannecessary to alert the user to the receipt of notification data.Furthermore, computing device 10 may receive fewer inputs from a user toturn-off or disable alerts from the computing device 10 since the usermay find these types of alerts to be more appealing than other types ofalerts. By outputting fewer subsequent alerts and by receiving fewerinputs from the user, computing device 10 may perform fewer operationsand consume less electrical power.

FIG. 3 is a conceptual block diagram illustrating an example computingdevice that outputs graphical content for display at a remote device andcan output somatosensory type alerts at a remote attachment mechanism,in accordance with one or more techniques of the present disclosure.

FIG. 3 is a block diagram illustrating an example computing device(e.g., computing device 10 of FIG. 1 and/or one or more processors 40 ofFIG. 2) that outputs graphical content for display at a remote deviceand can receive indications of a state of a remote attachment mechanism,in accordance with one or more techniques of the present disclosure.Graphical content, generally, may include any visual information thatmay be output for display, such as text, images, a group of movingimages, etc. The example shown in FIG. 3 includes a computing device100, presence-sensitive display 64, communication unit 70, projector 80,projector screen 82, mobile device 86, visual display device 90, andattachment mechanism 94. Although shown for purposes of example in FIGS.1 and 2 as a stand-alone computing device 10, a computing device such ascomputing device 100 may, generally, be any component or system thatincludes a processor or other suitable computing environment forexecuting software instructions and, for example, need not include apresence-sensitive display.

As shown in the example of FIG. 3, computing device 100 may be aprocessor that includes functionality as described with respect toprocessors 40 in FIG. 2. In such examples, computing device 100 may beoperatively coupled to presence-sensitive display 64 by a communicationchannel 102A, which may be a system bus or other suitable connection.Computing device 100 may also be operatively coupled to communicationunit 70, further described below, by a communication channel 102B, whichmay also be a system bus or other suitable connection. Although shownseparately as an example in FIG. 3, computing device 100 may beoperatively coupled to presence-sensitive display 64 and communicationunit 70 by any number of one or more communication channels.

Presence-sensitive display 64 may include display device 66 andpresence-sensitive input device 68. Display device 66 may, for example,receive data from computing device 100 and display the graphicalcontent. In some examples, presence-sensitive input device 68 maydetermine one or more user inputs (e.g., continuous gestures,multi-touch gestures, single-touch gestures, etc.) at presence-sensitivedisplay 64 using capacitive, inductive, and/or optical recognitiontechniques and send indications of such user input to computing device100 using communication channel 102A. In some examples,presence-sensitive input device 68 may be physically positioned on topof display device 66 such that, when a user positions an input unit overa graphical element displayed by display device 66, the location atwhich presence-sensitive input device 68 corresponds to the location ofdisplay device 66 at which the graphical element is displayed. In otherexamples, presence-sensitive input device 68 may be positionedphysically apart from display device 66, and locations ofpresence-sensitive input device 68 may correspond to locations ofdisplay device 66, such that input can be made at presence-sensitiveinput device 68 for interacting with graphical elements displayed atcorresponding locations of display device 66.

As shown in FIG. 3, computing device 100 may also include and/or beoperatively coupled with communication unit 70. Communication unit 70may include functionality of communication unit 44 as described in FIG.2. Examples of communication unit 70 may include a network interfacecard, an Ethernet card, an optical transceiver, a radio frequencytransceiver, or any other type of device that can send and receiveinformation. Other examples of such communication units may includeBluetooth®, 3G, and Wi-Fi® radios, Universal Serial Bus (USB)interfaces, etc. Computing device 100 may also include and/or beoperatively coupled with one or more other devices, e.g., input devices,output devices, memory, storage devices, etc. that are not shown in FIG.3 for purposes of brevity and illustration.

FIG. 3 also illustrates a projector 80 and projector screen 82. Otherexamples of projection devices may include electronic whiteboards,holographic display devices, and any other suitable devices fordisplaying graphical content. Projector 80 and projector screen 82 mayinclude one or more communication units that enable the respectivedevices to communicate with computing device 100. In some examples, theone or more communication units may enable communication betweenprojector 80 and projector screen 82. Projector 80 may receive data fromcomputing device 100 that includes graphical content. Projector 80, inresponse to receiving the data, may project the graphical content ontoprojector screen 82. In some examples, projector 80 may determine one ormore user inputs (e.g., continuous gestures, multi-touch gestures,single-touch gestures, double-bezel gestures, etc.) at projector screenusing optical recognition or other suitable techniques and sendindications of such user input using one or more communication units tocomputing device 100. In such examples, projector screen 82 may beunnecessary, and projector 80 may project graphical content on anysuitable medium and detect one or more user inputs using opticalrecognition or other such suitable techniques.

Projector screen 82, in some examples, may include a presence-sensitivedisplay 84. Presence-sensitive display 84 may include a subset offunctionality or all of the functionality of UI device 22 as describedin this disclosure. In some examples, presence-sensitive display 84 mayinclude additional functionality. Projector screen 82 (e.g., anelectronic whiteboard), may receive data from computing device 100 anddisplay the graphical content. In some examples, presence-sensitivedisplay 84 may determine one or more user inputs (e.g., continuousgestures, multi-touch gestures, single-touch gestures, double-bezelgestures, etc.) at projector screen 82 using capacitive, inductive,and/or optical recognition techniques and send indications of such userinput using one or more communication units to computing device 100.

FIG. 3 also illustrates mobile device 86 and visual display device 90.Mobile device 86 and visual display device 90 may each include computingand connectivity capabilities. Examples of mobile device 86 may includee-reader devices, convertible notebook devices, hybrid slate devices,etc. Examples of visual display device 90 may include othersemi-stationary devices such as televisions, computer monitors, etc. Asshown in FIG. 3, mobile device 86 may include a presence-sensitivedisplay 88. Visual display device 90 may include a presence-sensitivedisplay 92. Presence-sensitive display 92, for example, may receive datafrom computing device 100 and display the graphical content. In someexamples, presence-sensitive display 92 may determine one or more userinputs (e.g., continuous gestures, multi-touch gestures, single-touchgestures, double-bezel gestures, etc.) at projector screen usingcapacitive, inductive, and/or optical recognition techniques and sendindications of such user input using one or more communication units tocomputing device 100.

As described above, in some examples, computing device 100 may outputgraphical content for display at presence-sensitive display 64, which iscoupled to computing device 100 by a system bus or other suitablecommunication channel. Computing device 100 may also output graphicalcontent for display at one or more remote devices, such as projector 80,projector screen 82, mobile device 86, and visual display device 90. Forinstance, computing device 100 may execute one or more instructions togenerate and/or modify graphical content in accordance with techniquesof the present disclosure. Computing device 100 may output the data thatincludes the graphical content to a communication unit of computingdevice 100, such as communication unit 70. Communication unit 70 maysend the data to one or more of the remote devices, such as projector80, projector screen 82, mobile device 86, and/or visual display device90. In this way, computing device 100 may output the graphical contentfor display at one or more of the remote devices. In some examples, oneor more of the remote devices may output the graphical content at adisplay device, such as a presence-sensitive display, that is includedin and/or operatively coupled to the respective remote device.

In some examples, computing device 100 may not output graphical contentat presence-sensitive display 64 that is operatively coupled tocomputing device 100. In other examples, computing device 100 may outputgraphical content for display at both a presence-sensitive display 64that is coupled to computing device 100 by communication channel 102A,and at a display of one or more the remote devices. In such examples,the graphical content may be displayed substantially contemporaneouslyat each respective device. For instance, some delay may be introduced bythe communication latency to send the data that includes the graphicalcontent to the remote device. In some examples, graphical contentgenerated by computing device 100 and output for display atpresence-sensitive display 64 may be different than graphical contentdisplay output for display at one or more remote devices.

Computing device 100 may send and receive data using any suitablecommunication techniques. For example, computing device 100 may beoperatively coupled to external network 74 using network link 72A. Eachof the remote devices illustrated in FIG. 3 may be operatively coupledto network external network 74 by one of respective network links 72B,72C, 72D, and 72E. External network 74 may include network hubs, networkswitches, network routers, etc., that are operatively inter-coupledthereby providing for the exchange of information between computingdevice 100 and the remote devices illustrated in FIG. 3. In someexamples, network links 72A-72E may be Ethernet, ATM or other networkconnections. Such connections may be wireless and/or wired connections.

In some examples, computing device 100 may be operatively coupled to oneor more of the remote devices included in FIG. 3 using direct devicecommunication 78. Direct device communication 78 may includecommunications through which computing device 100 sends and receivesdata directly with a remote device, using wired or wirelesscommunication. That is, in some examples of direct device communication78, data sent by computing device 100 may not be forwarded by one ormore additional devices before being received at the remote device, andvice-versa. Examples of direct device communication 78 may includeBluetooth®, Near-Field Communication, Universal Serial Bus, infrared,etc. One or more of the remote devices illustrated in FIG. 3 may beoperatively coupled with computing device 100 by communication links76A-76E. In some examples, communication links 76A-76E may beconnections using Bluetooth®, Near-Field Communication, Universal SerialBus, infrared, etc. Such connections may be wireless and/or wiredconnections.

In accordance with techniques of the disclosure, computing device 100can be operable to output somatosensory type alerts indicative of thereceipt of notification data at attachment mechanism 94. For example, asdescribed with respect to FIGS. 1 and 2, computing device 100 may be orbe part of a wearable computing device 10. Hence, computing device 100may be mechanically coupled to an attachment mechanism, such asattachment mechanism 94 that may include a somatosensory output device(SOD) 96 (e.g., similar to SOD 14 of FIG. 1). In other examples,computing device 100 may be part of another, separate device fromattachment mechanism 94. For example, computing device 100 can be partof a mobile computing device or a separate wearable computing device, ormay be a mobile computing device or a separate wearable computingdevice.

In some examples, computing device 100 can receive notification data andoutput a graphical alert indicative of the receipt of the notificationdata, for instance, at presence-sensitive display device 64. In someexamples, computing device 100 can determine a physical activityassociated with a user of computing device 100 and/or a physiologicalcondition of the user and select a somatosensory type of alert withwhich to cue or otherwise indicate to a user of computing device 100 tothe receipt of the notification data. Computing device 100 can cause SOD96 to output the selected type of somatosensory type of alert atattachment mechanism 94. In some examples, computing device 100 may be amobile phone that infers a physical activity associated with a userand/or a physiological condition of the user and select a somatosensorytype of alert with which to cue or otherwise indicate to a user ofcomputing device 100 to the receipt of the notification data. Attachmentmechanism 94 may be a watchband, bracelet, etc. including SOD 96 withwhich computing device 100 outputs the selected somatosensory type ofalert.

FIGS. 4 and 5 are flowcharts illustrating example operations of anexample computing device configured to output alerts based at least inpart on contextual information, in accordance with one or more aspectsof the present disclosure. The processes of FIGS. 4 and 5 may beperformed by one or more processors of a computing device, such ascomputing device 10 illustrated in FIG. 1 and FIG. 2. For purposes ofillustration, FIGS. 4 and 5 are described below within the context ofinformation server system 60, computing device 10, and system 1,illustrated in FIG. 1. Although the technique of FIGS. 4 and 5 isdescribed with reference to computing device 10 of FIGS. 1 and 2, inother examples, the technique of FIGS. 4 and 5 may be performed byanother computing device or computing system, such as a computing devicethat includes more or fewer components that computing device 10.

FIG. 4 illustrates that computing device 10 may receive notificationdata (200). For example, notification client module 22 of computingdevice 10 may receive information transmitted by information serversystem 60 over network 30. The information received by notificationclient module 22 may indicate, for example, that an e-mail or textmessage was received at an account associated with computing device 10.

Computing device 10 may receive contextual information related to a userat a current time (210). For example, context module 24 may receivecommunications information, location information, time information,sensor information, and/or other types of information from various inputdevices, sensors, and/or communication units of computing device 10 anddetermine a context of the user of computing device 10. In someexamples, context module 24 may determine a location, a speed, adirection, an acceleration, a velocity, an orientation, a pattern ofvibration, and/or other degree of movement associated with computingdevice 10 and based on the degree of movement of computing device 10over time, infer whether the user of computing device 10 is performing aphysical or non-physical type of activity at the current time and/or aphysiological condition of the user at the current time. In someexamples, context module 24 may receive a heart rate, a blood pressure,a temperature, a galvanic skin level, or other physiological parameterof the user of computing device 10 and, based on physiologicalparameters of the user of computing device 10, context module 24 mayinfer a type of activity associated with the user at the current timeand/or a physiological condition of the user at the current time.

In some examples, context module 24 may determine, based on thecontextual information, a type of application being used by the user atthe current time, and the computing device may determine, based on thetype of application, the at least one of the physiological condition ofthe user at the current time or the type of activity associated with theuser at the current time. For example, context module 24 may receiveinformation from applications 52 indicating that an active applicationexecuting at computing device 10 corresponds to a fitness application(e.g., an electronic pedometer, an exercise tracking application, etc.).Context module 24 may determine that the user is performing a physicaltype of activity in response to determining that the active applicationis a fitness application and infer that the user of computing device 10may be stressed.

In some examples, computing device 10 may determine that the type ofapplication being used by the user at the current time includes either agame type application or a reading type application. Responsive todetermining that the type of application is the game type application,computing device 10 may determine that the user is stressed. As anotherexample, responsive to determining that the type of application is thereading type application, music type application, movie typeapplication, etc. computing device 10 may determine that the user isrelaxed.

For example, context module 24 may receive information indicating thatthe active one of applications 52 executing at computing device 10 atthe current time is an adventure game that may increase the heart rateand/or adrenaline level of a user when playing the adventure game. As aresult of implied or inferred increased heart rate and/or adrenalinelevel associated with the adventure game, context module 24 may inferthat the user is stressed. In other instances, context module 24 mayreceive information indicating that the active one of applications 52executing at computing device 10 at the current time is an electronicbook reader, an electronic magazine application, a social mediaapplication, an instant messaging application, an e-mail application, orother type of readying type application that may or may not increase theheart rate and/or adrenaline level of the user when interacting with thereading type application. As a result of implied or inferred decreasedheart rate and/or adrenaline level associated with the reading typeapplication, context module 24 may infer that the user is not stressedor is relaxed.

FIG. 4 further illustrates that computing device 10 may select a type ofsomatosensory alert to output as an indication of the notification databased on the contextual information (220). For example, UI module 20 mayreceive information from context module 24 that indicates a type ofactivity associated with the user at the current time and/or aphysiological condition of the user at the current time. Based on theinformation from context module 24, UI module 20 may select a type ofsomatosensory type alert with which to cue the user as to the receipt ofthe notification data without distracting, disturbing, and/or annoyingthe user at the current time. For instance, UI module 20 may select anelectric stimulus type alert if the information from context module 24indicates that the user is performing a physical activity or that theuser is stressed at the current time. As another example, UI module 20may select a low level vibration type alert if the information fromcontext module 24 indicates that the user is performing a non-physicalactivity and/or that the user is not stressed and relaxed at the currenttime.

Computing device 10 may output a somatosensory alert of the selectedtype and based on the notification data, at the current time (230). Forexample, UI module 20 may send a command or instruction to SOD 14 thatcauses SOD 14 to output a somatosensory alert based on the notificationdata using the selected type of alert that UI module 20 selected basedon the information from context module 24.

FIG. 5 illustrates further operations of computing device 10. Forinstance, FIG. 5 shows an additional example of operations of computingdevice 10 that may be performed by computing device 10 after step 230 ofFIG. 4. FIG. 5 illustrates that after outputting, at a current time, asomatosensory alert based on the notification data, computing device 10may receive additional contextual information related to the user, at alater time (240). In other words, context module 24 may continuously,periodically, and/or aperiodically receive contextual informationrelated to the user and continuously, periodically, and/or aperiodicallyperform operations described above for determining an context of theuser of computing device 10 in order to determine an updated context ofthe user at the later time. For example, in the morning, (e.g., at anearlier time), context module 24 may determine a physiological conditionof the user and/or a type of activity associated with the user as theuser is commuting to work. In the afternoon (e.g., at a later time),context module 24 may determine a different physiological condition ofthe user and/or a type of activity associated with the user as the useris eating lunch.

Computing device 10 may select a different type of somatosensory alertto output as the indication of the notification data based on theadditional contextual information (250). For example, UI module 20 mayreceive updated information from context module 24 that indicates anupdated physiological condition of the user and/or an updated activityassociated with the user, at the later time. Based on the updatedinformation from context module 24, UI module 20 may select a differentor same, appropriate type of somatosensory alert with which to cue theuser as to the receipt of the notification data without distracting,disturbing, and/or annoying the user at the later time. For instance, UImodule 20 may select an electric stimulus type alert if the updatedinformation from context module 24 indicates that the user is performinga physical activity or that the user is stressed at the current time. Asanother example, UI module 20 may select a low level vibration or SMAtype alert if the information from context module 24 indicates that theuser is performing a non-physical activity and/or that the user is notstressed and relaxed at the current time.

Computing device 10 may output a second somatosensory alert of theselected different type and based on the notification data at the latertime (260). For example, UI module 20 may send a command or instructionto SOD 14 that causes SOD 14 to output, at a later time, a secondsomatosensory alert based on the notification data using the selectedtype of alert that UI module 20 selected based on the additional,updated, information received from context module 24.

FIGS. 6 and 7 are flowcharts illustrating example operations of anexample computing device configured to select a type of alert based atleast in part on contextual information, in accordance with one or moreaspects of the present disclosure. The processes of FIGS. 6 and 7 areeach detailed examples of step 220 of the process shown in FIG. 4. Assuch, the processes of FIGS. 6 and 7 may be performed by one or moreprocessors of a computing device, such as computing device 10illustrated in FIG. 1 and FIG. 2. For purposes of illustration, FIGS. 6and 7 are described below within the context of information serversystem 60, computing device 10, and system 1, illustrated in FIG. 1. Inother words, FIGS. 6 and 7 are flowcharts illustrating at least someexample operations performed by computing device 10 for selecting a typeof somatosensory alert with which to indicate receipt of thenotification data based on contextual information related to a user.Although the techniques of FIGS. 6 and 7 are described with reference tocomputing device 10 of FIGS. 1 and 2, in other examples, the techniqueof FIGS. 6 and 7 may be performed by another computing device orcomputing system, such as a computing device that includes more or fewercomponents that computing device 10.

FIG. 6 illustrates that computing device 10 may determine aphysiological condition of the user based on the contextual information(300). For example, context module 24 may determine, based on thecontextual information (e.g., at least one physiological parameter ofthe user alone, or in combination with other contextual information),that the physiological condition of the user indicates that the user isstressed, relaxed, or neither stressed nor relaxed, at the current time.

For example, context module 24 may determine that the user is likelystressed when context module 24 determines that the location andvelocity of computing device 10 at the current time corresponds to alocation and velocity of an automobile traveling along a roadwayassociated with the user's commute to work. As another example, contextmodule 24 may determine that the user is likely relaxed when contextmodule 24 determines that the location of computing device 10 at thecurrent time corresponds to a home of the user and orientation data froma gyroscope of computing device 10 indicates that the user is lyingdown. As another example, context module 24 may determine that the useris likely neither stressed nor relaxed when context module 24 determinesthat heart rate data received from a heart rate monitor of computingdevice 10 falls within a threshold band for indicating a nominal heartrate at the current time and further determines that the location andvelocity of computing device 10 at the current time does not correspondto a user driving to work, rather the location and velocity correspondsto a location and velocity associated with a vehicle traveling on a lineof a transportation service (e.g., a train).

In any event, context module 24 of computing device 10 may output anindication of the physiological condition of the user at the currenttime to UI module 20. UI module 20 may receive the indication of thephysiological condition of the user and, based on whether thephysiological condition of the user indicates that user is stressed,relaxed, or neither stressed nor relaxed at the current time, UI module20 may select the type of alert with which to indicate receipt ofnotification data.

As described above, in some examples, a more intense somatosensory typealert may be more effective in alerting the user of computing device 10as to the receipt of the notification data than a less intensesomatosensory type alert (e.g., a mild vibration) when the user islikely stressed or physically active. In some examples, a less intense(e.g., more subtle) somatosensory type alert (e.g., an SMA type alert)may be effective in alerting the user of computing device 10 as to thereceipt of the notification data, while being less intrusive than a moreintense somatosensory type alert (e.g., an intense vibration), since theuser is likely relaxed and/or physically inactive.

Responsive to context module 24 determining that the physiologicalcondition of the user indicates that user is stressed (302), UI module20 of computing device 10 may select an electric stimulus or a high(e.g., more intense) vibration somatosensory alert (304). In otherwords, UI module 20 may select a more intense type of somatosensoryalert, such as a high vibration or an electric stimulus, when UI module20 receives information from context module 24 specifying that aphysiological condition of the user of computing device 10 indicatesthat the user is stressed.

Responsive to context module 24 determining that the physiologicalcondition of the user indicates that user is relaxed (306), UI module 20of computing device 10 may select a shape-memory alloy or a low (e.g.,less intense) vibration somatosensory alert (308). In other words, UImodule 20 may select a less intense type of somatosensory alert, such asa SMA alert or a low vibration, when UI module 20 receives informationfrom context module 24 specifying that a physiological condition of theuser of computing device 10 indicates that the user is relaxed.

Responsive to context module 24 determining that the physiologicalcondition of the user indicates that user is neither stressed norrelaxed, UI module 20 of computing device 10 may select a nominalvibration (e.g., medium vibration that is less intense than a highvibration and more intense than a low vibration) somatosensory alert(310). In other words, UI module 20 may select a nominal intensity typeof somatosensory alert, such as a nominal vibration, when UI module 20receives information from context module 24 specifying that aphysiological condition of the user of computing device 10 indicatesthat the user is neither stressed nor relaxed.

FIG. 7 illustrates further operations of computing device 10. Forinstance, FIG. 7 shows an additional example of operations of step 220of the process shown in FIG. 3 that may be performed by computing device10.

FIG. 7 illustrates that computing device 10 may determine a type ofactivity associated with the user based on the contextual information(314). For example, context module 24 may determine, based on thecontextual information, that the type of activity associated with theuser is either a physical activity or a non-physical activity. Contextmodule 24 may output data indicating to UI module 20 that the user isperforming a physical activity or non-physical activity at the currenttime. UI module 20 may use the indication of whether the activityassociated with the user at the current time is either physical ornon-physical to select the type of somatosensory alert with which toindicate, at the current time, receipt of notification data.

In some examples, context module 24 may determine that the user islikely performing a physical activity at the current time when contextmodule 24 determines that the location and velocity of computing device10 at the current time corresponds to a location and velocity of aperson walking, jogging, running, bicycling or otherwise moving withoutusing a motorized vehicle, along a pedestrian path, and prior to thetime that the user normally leaves his or her home to commute for work.In some examples, context module 24 may determine that the user islikely performing a non-physical activity when context module 24determines that the location and velocity of computing device 10 at thecurrent time corresponds to a location and velocity of an automobiletraveling along a roadway associated with the user's commute to work.

In some instances, context module 24 may determine, based on contextualinformation, an active one of applications 52 executing at computingdevice 10 at the current time and infer whether the user is performing aphysical or non-physical activity at the current time, based on the typeof application associated with the active application. For instance,when the type of application is a reading type application or a gametype application, context module 24 may determine that the user islikely reading or gaming, and as such, performing a non-physicalactivity. When the type of application is an exercise tracking typeapplication, context module 24 may determine that the user is likelyexercising, and as such, performing a physical activity.

In any event, context module 24 of computing device 10 may output anindication of the type of activity associated with the user at thecurrent time to UI module 20. UI module 20 may receive the indication ofthe type of activity, and, based on whether the type of activity is aphysical or a non-physical activity, UI module 20 may select the type ofalert with which to indicate receipt of notification data.

In some examples, when UI module 20 receives data from context module 24indicating that physical activity associated with the user is a physicaltype of activity and that the user may be stressed at the current time.When UI module 20 receives data from context module 24 indicating thatphysical activity associated with the user is a non-physical type ofactivity, the data may further indicate that user is not necessarilystressed at the current time. UI module 20 may select a more intensetype of somatosensory alert for alerting or cueing a user of computingdevice 10 to the receipt of notification data when UI module 20 receivesdata indicating that the user is stressed and/or that the user isperforming a physical activity

Responsive to context module 24 determining that the activity associatedwith the user is a physical activity (316), UI module 20 of computingdevice 10 may select an electric stimulus or a high (e.g., more intense)vibration somatosensory alert (318). In other words, UI module 20 mayselect a more intense type of somatosensory alert, such as a highvibration or an electric stimulus, when UI module 20 receivesinformation from context module 24 indicative of the user performing aphysical activity.

Responsive to context module 24 determining that the activity associatedwith the user is a non-physical activity (316), UI module 20 ofcomputing device 10 may select a shape-memory alloy type alert or avibration type alert with which to indicate receipt of notificationdata. In some examples, UI module 20 may select either the SMA typealert or the vibration type alert based on whether context module 24determines whether the non-physical activity associated with the user isa stressful type of activity or a non-stressful type of activity.

Context module 24 may infer that a user may be stressed when a type ofactivity associated with a user is non-physical and the non-physicalactivity is a stressful type of activity (e.g., when the type ofactivity is playing a video game). Context module 24 may infer that auser may be not stressed or relaxed when a type of activity associatedwith a user is non-physical and the non-physical activity is not astressful type of activity (e.g., when the type of activity is reading).Context module 24 may output data to UI module 20 indicating aphysiological condition and/or type of activity that context module 24infers of the user.

Responsive to context module 24 determining that the type ofnon-physical activity associated with the user at the current time isnot stressful (320), UI module 20 of computing device 10 may select aSMA or a low vibration (e.g., less intense than high and mediumvibrations) somatosensory alert (322). In other words, UI module 20 mayselect more subtle types of somatosensory type alerts to be output fromSOD 14 when the type of non-physical activity is not stressful since themore subtle type alerts may be effective in obtaining the attention ofthe user when the user is performing a non-physical, and non-stressfulactivity, without disturbing, distracting, and/or annoying the user atthe current time, is a less intense type of somatosensory alert, such asa SMA alert or a low vibration.

Responsive to context module 24 determining that the type ofnon-physical activity associated with the user at the current time isstressful (320), UI module 20 of computing device 10 may select anominal vibration (e.g., more intense than a high vibration and lessintense than a low vibration) somatosensory alert (324). For instance,UI module 20 may more subtle types of somatosensory type alerts (e.g.,as a nominal or medium intensity vibration) when UI module 20 receivesdata from context module 24 indicating that the type of non-physicalactivity being performed by the user is stressful.

In this manner, computing device 10 may select a way in which thecomputing device 10 outputs somatosensory alerts based at least in parton the physiological condition and/or activity associated with the userat a current time. By selecting a type of somatosensory alert based oncontextual information related to a user in this way, computing device10 may increase a likelihood that the user of the computing deviceperceives (e.g., feels) an alert being outputted by the computingdevice, while reducing distraction, disturbance, or annoyance to theuser with the output of the alert. For example, the user may be lesslikely to miss an alert based on notification data and computing device10 may in turn output fewer subsequent alerts to convey the sameinformation conveyed by a prior alert. As another example, thesomatosensory alert may be better tailored to the current circumstances,such that the somatosensory alert is less likely to be more intense thannecessary to alert the user to the receipt of notification data.Furthermore, computing device 10 may receive fewer inputs from a user toturn-off or disable alerts from the computing device 10 since the usermay find these types of alerts to be more appealing than other types ofalerts. By outputting fewer subsequent alerts and by receiving fewerinputs from the user, computing device 10 may perform fewer operationsand consume less electrical power.

Clause 1. A method comprising: receiving, by a computing device,contextual information related to a user associated with the computingdevice, wherein the contextual information relates to at least one of aphysiological condition of the user at a current time or a type ofactivity associated with the user at the current time; selecting, by thecomputing device, based at least in part on the contextual information,a type of alert to output as an indication of notification data, whereinthe type of alert comprises at least one of an electric stimulus typealert, a shape-memory alloy type alert, and a vibration type alert; andoutputting, by the computing device, an alert based on the notificationdata, the alert being of the selected type of alert.

Clause 2. The method of clause 1, further comprising: determining, bythe computing device, based on the contextual information, that thephysiological condition of the user indicates that the user is eitherstressed, relaxed, or neither stressed nor relaxed, at the current time;and wherein selecting, based on at least in part on the contextualinformation, the type of alert to output as the indication of thenotification data comprises selecting, by the computing device, based onwhether the physiological condition of the user indicates that user iseither stressed, relaxed, or neither stressed nor relaxed, at thecurrent time, the type of alert with which to indicate receipt ofnotification data.

Clause 3. The method of clause 2, wherein determining, based on thecontextual information, that the physiological condition of the userindicates that the user is either stressed, relaxed, or neither stressednor relaxed, at the current time comprises determining, based on thecontextual information, that the physiological condition of the userindicates that the user is stressed at the current time, and whereinselecting, based on whether the physiological condition of the userindicates that the user is either stressed, relaxed, or neither stressednor relaxed, at the current time, the type of alert with which toindicate receipt of notification data comprises responsive todetermining that the physiological condition of the user indicates thatuser is stressed, selecting, by the computing device, an electricstimulus type alert to output as the indication of the notificationdata.

Clause 4. The method of any of clauses 2-3, wherein selecting, based onwhether the physiological condition of the user indicates that the useris either stressed, relaxed, or neither stressed nor relaxed, at thecurrent time, the type of alert with which to indicate receipt ofnotification data comprises responsive to determining that thephysiological condition of the user indicates that user is relaxed,selecting, by the computing device, a shape-memory alloy type alert tooutput as the indication of the notification data.

Clause 5. The method of any of clauses 2-4, wherein selecting, based onwhether the physiological condition of the user indicates that the useris either stressed, relaxed, or neither stressed nor relaxed, at thecurrent time, the type of alert with which to indicate receipt ofnotification data comprises responsive to determining that thephysiological condition of the user indicates that user is neitherstressed nor relaxed, selecting, by the computing device, a vibrationtype alert to output as the indication of the notification data.

Clause 6. The method of any of clauses 1-5, further comprising:determining, by the computing device, based on the contextualinformation, that the type of activity associated with the user iseither a physical activity or a non-physical activity; and whereinselecting, based on at least in part on the contextual information, thetype of alert with which to indicate receipt of notification datacomprises selecting, by the computing device, based on whether theactivity associated with the user is either the physical activity or thenon-physical activity, the type of alert to output as the indication ofthe notification data.

Clause 7. The method of clause 6, wherein selecting, based on whetherthe activity associated with the user is either the physical activity orthe non-physical activity, the type of alert to output as the indicationof the notification data comprises: responsive to determining that thetype of alert is the non-physical activity, determining, by thecomputing device, whether the non-physical activity is a stressful typeof activity or a non-stressful type of activity; and selecting, by thecomputing device, based on whether the non-physical activity is thestressful type of activity or the non-stressful type of activity, thetype of alert to output as the indication of the notification data.

Clause 8. The method of any of clauses 6-7, wherein selecting, based onwhether the activity associated with the user is either the physicalactivity or the non-physical activity, the type of alert to output asthe indication of the notification data comprises responsive todetermining that the activity associated with the user is a physicalactivity, selecting, by the computing device, an electric stimulus typealert to output as the indication of the notification data.

Clause 9. The method of any of clauses 6-8, wherein selecting, based onwhether the activity associated with the user is either the physicalactivity or the non-physical activity, the type of alert to output asthe indication of the notification data comprises responsive todetermining that the activity associated with the user is a non-physicalactivity, selecting, by the computing device, a shape-memory alloy typealert or a vibration type alert to output as the indication of thenotification data.

Clause 10. The method of any of clauses 1-9, wherein the contextualinformation comprises first contextual information, the selected type ofalert comprises a first type of alert, and the alert comprises a firstalert, the method further comprising: responsive to receiving secondcontextual information related to the user associated with the computingdevice at a later time, selecting, by the computing device, based atleast in part on the second contextual information, a second type ofalert to output as the indication of the notification data, wherein thesecond contextual information relates to at least one of a physiologicalcondition of the user at a later time or a type of activity associatedwith the user at the later time; and outputting, by the computingdevice, at the later time, a second alert based on the notificationdata, the second alert being of the selected second type of alert.

Clause 11. The method of any of clauses 1-10, further comprising:determining, by the computing device, based on the contextualinformation, a type of application being used by the user at the currenttime; and determining, by the computing device, based on the type ofapplication, the at least one of the physiological condition of the userat the current time or the type of activity associated with the user atthe current time.

Clause 12. The method of clause 11, further comprising: wherein the typeof application being used by the user at the current time compriseseither a game type application or a reading type application, andwherein determining, based on the type of application, the at least oneof the physiological condition of the user at the current time or thetype of activity associated with the user at the current time comprises:responsive to determining that the type of application is the game typeapplication, determining, by the computing device, that thephysiological condition of the user indicates that user is stressed; andresponsive to determining that the type of application is the readingtype application, determining, by the computing device, that thephysiological condition of the user indicates that user is relaxed.

Clause 13. A computing device comprising: at least one processor; and atleast one module operable by the at least one processor to: receivecontextual information related to a user associated with the computingdevice, wherein the contextual information relates to at least one of aphysiological condition of the user at a current time or a type ofactivity associated with the user at the current time; select, based atleast in part on the contextual information, a type of alert to outputas an indication of notification data, wherein the type of alertcomprises at least one of an electric stimulus type alert, ashape-memory alloy type alert, and a vibration type alert; and output analert based on the notification data, the alert being of the selectedtype of alert.

Clause 14. The computing device of clause 13, wherein the at least onemodule is further operable by the at least one processor to determine,based on the contextual information, that the physiological condition ofthe user indicates that the user is either stressed, relaxed, or neitherstressed nor relaxed, at the current time; and wherein the at least onemodule is further operable by the at least one processor to select,based on at least in part on the contextual information, the type ofalert to output as the indication of the notification data by at leastselecting, based on whether the physiological condition of the userindicates that user is either stressed, relaxed, or neither stressed norrelaxed, at the current time, the type of alert to output as theindication of the notification data.

Clause 15. The computing device of clause 14, wherein the at least onemodule is further operable by the at least one processor to determine,based on the contextual information, that the physiological condition ofthe user indicates that the user is either stressed, relaxed, or neitherstressed nor relaxed, at the current time by at least determining, basedon the contextual information, that the physiological condition of theuser indicates that the user is stressed at the current time, andwherein the at least one module is further operable by the at least oneprocessor to select, based on whether the physiological condition of theuser indicates that the user is either stressed, relaxed, or neitherstressed nor relaxed, at the current time, the type of alert to outputas the indication of the notification data by at least responsive todetermining that the physiological condition of the user indicates thatuser is stressed, selecting, an electric stimulus type alert to outputas the indication of the notification data.

Clause 16. The computing device of any of clauses 13-15, wherein the atleast one module is further operable by the at least one processor todetermine, based on the contextual information, that the type ofactivity associated with the user is either a physical activity or anon-physical activity; and wherein the at least one module is furtheroperable by the at least one processor to select, based on at least inpart on the contextual information, the type of alert to output as theindication of the notification data by at least selecting, based onwhether the activity associated with the user is either the physicalactivity or the non-physical activity, the type of alert to output asthe indication of the notification data.

Clause 17. The computing device of clause 16, wherein the at least onemodule is further operable by the at least one processor to select,based on whether the activity associated with the user is either thephysical activity or the non-physical activity, the type of alert tooutput as the indication of the notification data by at least:responsive to determining that the type of alert is the non-physicalactivity, determine whether the non-physical activity is a stressfultype of activity or a non-stressful type of activity; and select, basedon whether the non-physical activity is the stressful type of activityor the non-stressful type of activity, the type of alert to output asthe indication of the notification data.

Clause 18. A computer-readable storage medium comprising instructionsthat, when executed, configure one or more processors of a computingdevice to: receive contextual information related to a user associatedwith the computing device, wherein the contextual information relates toat least one of a physiological condition of the user at a current timeor a type of activity associated with the user at the current time;select, based at least in part on the contextual information, a type ofalert to output as the indication of the notification data, wherein thetype of alert comprises at least one of an electric stimulus type alert,a shape-memory alloy type alert, and a vibration type alert; and outputan alert based on the notification data, the alert being of the selectedtype of alert.

Clause 19. The computer-readable storage medium of clause 18, comprisingfurther instructions that, when executed, configure the one or moreprocessors of the computing device to: determine, based on thecontextual information, that the physiological condition of the userindicates that the user is either stressed, relaxed, or neither stressednor relaxed, at the current time; and select, based on at least in parton the contextual information, the type of alert to output as theindication of the notification data by at least selecting, based onwhether the physiological condition of the user indicates that user iseither stressed, relaxed, or neither stressed nor relaxed, at thecurrent time, the type of alert to output as the indication of thenotification data.

Clause 20. The computer-readable storage medium of any of clauses 18-19,comprising further instructions that, when executed, configure the oneor more processors of the computing device to: determine, based on thecontextual information, that the type of activity associated with theuser is either a physical activity or a non-physical activity; andselect, based on at least in part on the contextual information, thetype of alert to output as the indication of the notification data by atleast selecting, based on whether the activity associated with the useris either the physical activity or the non-physical activity, the typeof alert to output as the indication of the notification data.

Clause 21. A computing device comprising means for performing any of themethods of clauses 1-12.

Clause 22. A computer-readable storage medium encoded with instructionsfor causing one or more programmable processors to perform any of themethods recited by clauses 1-12.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over, as oneor more instructions or code, a computer-readable medium and executed bya hardware-based processing unit. Computer-readable media may includecomputer-readable storage media, which corresponds to a tangible mediumsuch as data storage media, or may include communication media includingany medium that facilitates transfer of a computer program from oneplace to another, e.g., according to a communication protocol. In thismanner, computer-readable media generally may correspond to (1) tangiblecomputer-readable storage media, which is non-transitory or (2) acommunication medium such as a signal or carrier wave. Data storagemedia may be any available media that can be accessed by one or morecomputers or one or more processors to retrieve instructions, codeand/or data structures for implementation of the techniques described inthis disclosure. A computer program product may include acomputer-readable medium.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if instructions are transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. It should be understood, however, thatcomputer-readable storage media and data storage media do not includeconnections, carrier waves, signals, or other transient media, but areinstead directed to non-transient, tangible storage media. Disk anddisc, as used herein, includes compact disc (CD), laser disc, opticaldisc, digital versatile disc (DVD), floppy disk and Blu-ray disc, wheredisks usually reproduce data magnetically, while discs reproduce dataoptically with lasers. Combinations of the above should also be includedwithin the scope of computer-readable media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules. Also, the techniques couldbe fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A method comprising: determining, by a computingdevice, based at least in part on contextual information associated witha user of the computing device, a type of activity currently beingperformed by the user; selecting, by the computing device, based atleast in part on the type of activity, a particular intensity level forwhich to output a vibration alert for indicating receipt of notificationdata; and responsive to receiving the notification data, outputting, bythe computing device, at the particular level of intensity, thevibration alert.
 2. The method of claim 1, wherein the contextualinformation comprises information indicating that the user isinteracting with the computing device.
 3. The method of claim 2, whereinthe information indicating that the user is interacting with thecomputing device includes information indicating that the user isviewing a display of the computing device.
 4. The method of claim 2,wherein the information indicating that the user is interacting with thecomputing device includes information indicating that the user isproviding user inputs at the computing device.
 5. The method of claim 1,wherein the contextual information comprises information indicating thatthe user is interacting with a particular application executing at thecomputing device.
 6. The method of claim 5, wherein the particularapplication is a reading application and the particular intensity levelis a low level of intensity.
 7. The method of claim 5, wherein theparticular application is a game application and the particularintensity level is a high level of intensity.
 8. The method of claim 1,wherein the particular intensity level is selected from a plurality ofintensity levels including a high level of intensity and a low level ofintensity.
 9. The method of claim 8, wherein the plurality of intensitylevels further include a moderate level of intensity between the highand low levels of intensity.
 10. The method of claim 1, wherein thenotification data comprises information indicating that an eventassociated with the computing device has occurred.
 11. A computingdevice comprising: an output component; and at least one processorconfigured to: determine, based at least in part on contextualinformation associated with a user of the computing device, a type ofactivity currently being performed by the user; select, based at leastin part on the type of activity, a particular intensity level for whichto output a vibration alert for indicating receipt of notification data;and responsive to receiving the notification data, output, via theoutput component and at the particular level of intensity, the vibrationalert.
 12. The computing device of claim 11, wherein the computingdevice is a mobile phone.
 13. The computing device of claim 11, whereinthe contextual information comprises information indicating that theuser is interacting with the computing device.
 14. The computing deviceof claim 13, wherein the information indicating that the user isinteracting with the computing device includes information indicatingthat the user is viewing a display of the computing device.
 15. Thecomputing device of claim 13, wherein the information indicating thatthe user is interacting with the computing device includes informationindicating that the user is providing user inputs at the computingdevice.
 16. A computer-readable storage medium comprising instructionsthat, when executed, cause one or more processors of a computing deviceto: determine, based at least in part on contextual informationassociated with a user of the computing device, a type of activitycurrently being performed by the user; select, based at least in part onthe type of activity, a particular intensity level for which to output avibration alert for indicating receipt of notification data; andresponsive to receiving the notification data, output, at the particularlevel of intensity, the vibration alert.
 17. The computer-readablestorage medium of claim 16, wherein the instructions, when executed,further cause the one or more processors of the computing device tooutput the vibration alert via a different device.
 18. Thecomputer-readable storage medium of claim 17, wherein the computingdevice is a mobile phone and the different device is a wearablecomputing device.
 19. The computer-readable storage medium of claim 16,wherein the contextual information comprises information indicating thatthe user is interacting with a reading application executing at thecomputing device and the particular intensity level is a low level ofintensity.
 20. The computer-readable storage medium of claim 16, whereinthe contextual information comprises information indicating that theuser is performing a physical activity rather than interacting with anapplication executing at the computing device and the particularintensity level is a high level of intensity.